package cn.whdreamblog.util;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import cn.whdreamblog.entites.BlogArticle;

/**
 * 
 * @author Administrator
 * @since 2016.10.15
 */
public class BlogUtil {
	private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式  
    private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式  
    private static final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式  
    private static final String regEx_space = "\\s*|\t|\r|\n";//定义空格回车换行符  
    
    /** 
     * @param htmlStr 
     * @return 
     *  删除Html标签 
     */  
    public static String delHTMLTag(String htmlStr) {  
        Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);  
        Matcher m_script = p_script.matcher(htmlStr);  
        htmlStr = m_script.replaceAll(""); // 过滤script标签  
  
        Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);  
        Matcher m_style = p_style.matcher(htmlStr);  
        htmlStr = m_style.replaceAll(""); // 过滤style标签  
  
        Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);  
        Matcher m_html = p_html.matcher(htmlStr);  
        htmlStr = m_html.replaceAll(""); // 过滤html标签  
  
        Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);  
        Matcher m_space = p_space.matcher(htmlStr);  
        htmlStr = m_space.replaceAll(""); // 过滤空格回车标签  
        return htmlStr.trim(); // 返回文本字符串  
    }  
      
    public static String getTextFromHtml(String htmlStr){  
        htmlStr = delHTMLTag(htmlStr);  
        htmlStr = htmlStr.replaceAll("&nbsp;", "");  
        htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);  
        return htmlStr;  
    }  
    
    public static List<BlogArticle> getTextFromMultitermHtml(List<BlogArticle> list){
    	for (BlogArticle blogArticle : list) {
			blogArticle.setMainText(delHTMLTag(blogArticle.getMainText()));
		}
    	return list;
    }
    public static List<BlogArticle> getTextFromMultitermHtmlLimtLength(List<BlogArticle> list,int length){
    	String str;
    	for (BlogArticle blogArticle : list) {
    		if(delHTMLTag(blogArticle.getMainText()).length()>length){
    			str=delHTMLTag(blogArticle.getMainText()).substring(0,length);
    		}else{
    			str=delHTMLTag(blogArticle.getMainText());
    		}
    		blogArticle.setMainText(str);
		}
    	return list;
    }
    
    public static String dealString(String content) {
		String txtcontent = content.replaceAll("</?[^>]+>", ""); //剔出<html>的标签  
        txtcontent = txtcontent.replaceAll("<a>\\s*|\t|\r|\n</a>", "");//去除字符串中的空格,回车,换行符,制表符  
        return txtcontent;
	}
    public static String fomat(Timestamp time) {
    	SimpleDateFormat sft = new SimpleDateFormat("yyyy年MM月dd日");
		return sft.format(time);
    }
    
    public static String getServerPath() {
    	HttpServletRequest request=ServletActionContext.getRequest();  
		String path=request.getScheme() + "://"
		+ request.getServerName() + ":" + request.getServerPort()
		+ request.getContextPath();
		return path;
	}
}
